�޼ҵ� �ñ׳��� �����丵�� ����

 

�� ������ Change Method Signature  ï¿½ï¿½ï¿½ï¿½ï¿½ä¸µ ������ ��ſ��� ��������  overview�� �����ϰ�  how �� �����丵�� IntelliJ IDEA���� ���� �� �ִ°��� �����մϴ�.

����


Change Method Signature ï¿½ï¿½ï¿½ï¿½ï¿½ä¸µï¿½ï¿½ �޼ҵ� �ñ׳��Ŀ� ������� �� �ִ� ���� ���� �ٸ� ������ �����մϴ�.  

 

������ ������ ������ �����ϴ�

 ï¿½Þ¼Òµï¿½ �̸� ����
 
���� �� ����
 
�� ���� ����
 
�� �ֹ� �Ű� ����
 
���� Ÿ�� ����
 
�Ű����� Ÿ�� ����
 
�Ű� ���� �̸� ����


�� �����丵�� �����ڿ��� ���� ���������� ����� �׵��� �̸� �Ǵ� ���� ���¸� ������ �� �����ϴ�.
�ñ׳��� �� ��ü�� �����ϴ� �Ϳ� ����, IDEA�� �޼ҵ��� ��� ��뿡 ���� Ž���� ���̰�, ��ü ȣ��, ������ ������ �ݿ��ϱ� ���� �����ϰ� ����� �� �ִ� �޼ҵ��� overriding�� �ٲ� ���Դϴ�.  ï¿½ï¿½ï¿½ï¿½ �� ������ �߰��Ǹ�, �װ��� �޼ҵ� ���� ���� ���Ǵ� ����Ʈ ���� ���޵Ǿ�߸� �մϴ�.


���� �� ���� �տ��� ������ �׸ñ¿¡¼ï¿½ ����� ������ �� ������ overriding�̿ܿ� �޼ҵ� �ݿ� ������ ��ġ�� �ʽ��ϴ�.  ï¿½ï¿½ï¿½ï¿½ ����� �� ���� ���� �Ǵ� ���� ���¸� �����ϰ�, �ٲ�� �ڵ带 ������ �Ϸ��� �ϸ� ��ſ��� ���� �޽����� ������Ʈ �� �� �Դϴ�.  ï¿½ï¿½ï¿½ï¿½ï¿½ ������ �޴� �޼ҵ� �� �Ǵ� �޼ҵ� ���� �������� �����ؾ߸� �� ���Դϴ�.


�޼ҵ� �ñ׳����� �����ϸ� ����� �޼ҵ� ���� �ٷ�� �� ���� �ɼ��� �����ϴ�.  Ã¹ ��°, Modify ï¿½ï¿½ ������ �޼ҵ� ���� �����մϴ�.  ï¿½ï¿½ ��°, Delegate via overloading method ï¿½ï¿½ ���� �޼ҵ��� �ñ׳����� �ٲٰ�, ���� �޼ҵ��� �ñ׳��İ� �Բ� ���ο� �޼ҵ带 �����մϴ�.  ï¿½ï¿½ ���ο� �޼ҵ�� ���ο� �ñ׳��İ� �Բ� ������ �޼ҵ忡 ���� �����մϴ�.

���� ���, �츮�� ������ Ŭ������ �����ϴ�

 
    class AClass {
        public void methodA() {
            //some code here
        }
        public void methodB() {
            //some code here
        }
    }
 
    ...
 
    void foo (AClass aClass){
        aClass.methodA();
    }

 

�׸��� Å¸ï¿½ï¿½ int�� �� ������ �߰��ϸ鼭 methodA�� �ñ׳����� Modify�� �����մϴ������丵 ���� �� Ŭ������ ������ ���� �� ���Դϴ�:
 
    class AClass {
        public void methodA(int aParameter) {
            //some code here
        }
        public void methodB() {
            //some code here
        }
    }


�߰��� �Ű� ������ ���� ����Ʈ ���� �߰��ϴ� �Ϳ� ���� ���õ� �޼ҵ��� �κ����̼��� ����� ���Դϴ�:

    void foo (AClass aClass){
        aClass.methodA(0);
    }
 

���� ����� Delegate via overloading method ï¿½ï¿½ï¿½ï¿½ï¿½Ï¸ï¿½ AClass ï¿½Úµï¿½ï¿½ �ٸ��� �� ���Դϴ�.

 
    class AClass {
       public void methodA() {
            methodA(0);
        }
 
        public void methodA(int aParameter) {
            //some code here
        }
        public void methodB() {
            //some code here
        }
    }
 
    ...
 
    void foo (AClass aClass){
        aClass.methodA();
    }



�޼ҵ� �ñ׳��� ����


�޼ҵ� �ñ׳����� �����ϱ� ���ؼ�

 1.   Project, �� �ٸ� ������ Commander ï¿½ï¿½ï¿½ï¿½ �޼ҵ带 �����ϰų� �Ǵ� ���� �����⿡�� ������Ǵ� �޼ҵ� �̸����� ij���� ��ġ��Ű��, �� ���� �˾� �޴�(Ŭ������ ������ ��ư Ŭ���Ͽ�) �Ǵ� ���� Menu Bar �� �� ��� ������� Ctrl + F6 ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ OR Refactor Change Signature...�� Ŭ���մϴ�.
 2.   ï¿½ï¿½ï¿½ï¿½ ���̾�α� ������� �����丵 �� ������ �����ϱ� ���� ��Ÿ�� ���Դϴ�:

�̸�

 

�� �ؽ�Ʈ �ʵ忡�� ����� �޼ҵ��� �̸��� ������ �� �ֽ��ϴ�.

 

���� ����

 

�� �ؽ�Ʈ �ʵ忡�� ����� �޼ҵ��� ���� ���¸� ������ �� �ֽ��ϴ�.

 

�� ����

�� ��Ͽ��� ����� ���õ� �޼ҵ�(���� Add ï¿½Ç´ï¿½ Remove ��ư�� ����Ͽ�)�� ���� �� ������ �߰� �Ǵ� ������ �� �ְų�, �׵��� ����(���� Move up ï¿½Ç´ï¿½ Move down ï¿½ï¿½Æ°ï¿½ï¿½ ����Ͽ�)�� ������ �� �ֽ��ϴ�.  ï¿½ï¿½ï¿½ï¿½ ����� �����ϴ� �� ���� �ʵ带 Ŭ���ϴ� �Ϳ� ���� �� ������ Ÿ���� �����ϰų�, �̸��� ���ų�, ���Ӱ� �Է��� �� �ִ� �� ������ ���� ����Ʈ ���� ������ �� �ֽ��ϴ�.  ï¿½ï¿½ï¿½ï¿½ �� ���� ���� �Ǵ� �̸��� ����Ȯ�ϸ� ��ſ��� Incorrect Data ï¿½ï¿½ï¿½Ì¾ï¿½Î±×°ï¿½ ������Ʈ �� �� �Դϴ�.


���� ���ο� �� ������ �߰��Ǹ�, �װ��� �޼ҵ� ���� ���� ���Ǵ� ����Ʈ ���� �����Ǿ�߸� �մϴ�.  ï¿½×°ï¿½ï¿½ï¿½ ������, ����� ������ Incorrect Data ï¿½ï¿½ï¿½Ì¾ï¿½Î±×¸ï¿½ �� ���Դϴ�:


Any var Ã¼Å© �ڽ��� ���õǸ�, ���� �޼ҵ� �� ����Ʈ���� �������� �� Ÿ�԰� �Բ� ������ �ϳ��� �ʵ�/������/���� �ִٸ�

IDEA�� �����ϴ� �� ������ ���� ������ Ÿ�԰� �Բ� � ������ �ʵ�/������/���� ȣ���ϴ� �޼ҵ忡�� �����丵 �� �Ŀ� ã�Ƽ� ����Ϸ��� �� �� �Դϴ�. ���� �� ���� �����Ұ� ï¿½ï¿½ï¿½ï¿½Æ® ���� ������ �� Ÿ�԰� �Բ� �ִٸ� ���� ���˴ϴ�. ���� Any var Ã¼Å© �ڽ��� ���õǸ�, ����Ʈ ���� �׻� ����� ���Դϴ�.

�ñ׳��� �̸� ����

 

�ű⿡�� ����� ������ ����ǰ� �� �Ŀ� ��Ÿ�� ���� �޼ҵ� �ñ׳����� �̸� ������ �� �ֽ��ϴ�.

 

����� �̸� ���� ���


�� üũ �ڽ��� �����ϸ� ����� � ����� �߰ߵǾ����� �����ϰ�, �׵��� ��ü�� �����ϵ��� ����մϴ�.  ï¿½ï¿½ üũ �ڽ��� ���õ��� ���� ��, IDEA�� ��ü�� �ڵ������� �����մϴ�.


������ üũ �ڽ��� ���õ��� �ʾ��� ����, ���� �߰ߵ� ����� � �б� ���� ���Ͽ��� �����ϸ� ����� ��ü ����� Ȯ���ϴ� ������Ʈ�� ��ſ� ���� �� �Դϴ�.


Refactoring Preview ï¿½ï¿½ï¿½Ì¾ï¿½Î±ï¿½(���� �װ��� ��Ÿ����)���� ����� ����� ������ ��� �� �ֽ��ϴ�.  ï¿½ï¿½ï¿½ï¿½ï¿½ä¸µï¿½ï¿½ �Բ� �����ϱ� ���ؼ�, Do Refactor�� Ŭ���մϴ��׷��� �ʴٸ� Cancel �� Ŭ���մϴ�. ���� ���� ������ Refactoring Preview�� ���ʽÿ�.


 3.  OK�� �����ϴ�, �׸��� �޼ҵ� �ñ׳����� ����� ���Դϴ�.

 4.  ï¿½ï¿½ï¿½ï¿½ï¿½ Change Method Signature �� ������ ���̽� Ŭ���� �޼ҵ带 Override �ϰų� �Ǵ� Implement�ϴ� �޼ҵ带 Refactor �Ϸ��� �� ��, ��ſ��� ������ ���̾�αװ� ����� �� �Դϴ�.




No�� ������ ����� ���̽� Ŭ���� �޼ҵ带 �ٲ��� �ʰ� ���õ� �޼ҵ常�� Refactor�ϵ��� ����մϴ�.

Yes�� ������ ����� ���̽� Ŭ�������� ��� �޼ҵ带 �����ϴ� ���� ����մϴ�.  ï¿½×·ï¿½ï¿½ï¿½, ���� �װ��� � ���������� �Ұ����ϸ� ����� �����ϴ� ���� �޽����� �� ���Դϴ�, ���� ���:



 5.   ï¿½ï¿½ï¿½ï¿½ Delegate via overloading method ï¿½ï¿½ ���õǰ� ����� �׷� �ڵ带 �����ϴ� : 

 
        class A{
            public void method(){
                //some code
            };
        }
 
        class B extends A{
            public void method(){
                //some code
            };
        }
    

A Å¬ï¿½ï¿½ï¿½ï¿½(�θ�) �޼ҵ忡 ����� �����丵 �Ŀ�

 
    class A{
        public void method(){
            method(1);
        }
 
        public void method(int param){
            //some code
        };
    }
 
    class B extends A{
        public void method(int param){
            //some code
        };
    }
    

A.method�� ����ǰ�, B.method ï¿½Ã±×³ï¿½ï¿½ï¿½ ���� ����˴ϴ�